// 贪吃蛇-蛇头追蛇尾
// 有n个整数，使前面的各数顺序往后移动m个位置，最后m个数变成前面m个数，写一个函数实现上述功能，输出调整后的n个数

// Input Description
// 输入为两行，第一行有两个整数n和m，n的取值范围为[1, 100000]，m取值范围为[0, n]。第二行为n个数，每个数用空格分隔（末尾没有空格）

// Output Description
// 输出为一行，有n个数，每个数用空格分隔（末尾没有空格）

// Samples
// INPUT 1 
// 26 4
// 15253 57365 24834 54085 13571 54555 11737 42603 28006 24967 43381 23067 23707 52226 51257 59894 59419 40326 12041 3793 21796 49339 47614 63543 32967 2360
// OUTPUT 1 
// 47614 63543 32967 2360 15253 57365 24834 54085 13571 54555 11737 42603 28006 24967 43381 23067 23707 52226 51257 59894 59419 40326 12041 3793 21796 49339
#include <stdio.h>
#include <stdlib.h>
void f(int n,int m);
int main(void)
{
    int n,m;
    scanf("%d%d",&n,&m);
    f(n,m);
    return 0;
}
void f(int n,int m)
{
    int *p,i=0;
    p=(int *)malloc(n*sizeof(int));
    for (i=0;i<n;i++)
    {
        scanf("%d",p+i);
    }
    i=0;
    while (i<n-1)
    {
        printf("%d ",*(p+(n+i-m)%n));
        i++;
    }
    printf("%d",*(p+(n+i-m)%n));
    free(p);
}